The application is directed to networking switches that comprise of hardware configured to direct communications from a client (e.g. a data client) to nodes in a distributed computing system (e.g. distributed data storage system).
In general, network switching devices utilize a set of forwarding rules to forward data units for a given protocol (which may be referred to, generically, as Protocol Data Units, or PDU) over a network. The number of these rules is limited in accordance with pre-determined number of rules available on a given one or more processors in a switch, e.g. an Ethernet chip or chipset. In cases where there are a large number of clients, and/or a large number of host nodes, for example in a distributed computing system servicing a large number of clients, the number of forwarding rules can be limiting or even overwhelmed.
In many types of destination address based forwarding, (or other type of Layer 2 (“L2”) communications, where L2 refers to communications relating to the datalink layer), such as MAC address-based forwarding, and standard IP forwarding (or other type of Layer 3 (“L3”) communications, where L3 refers to the network layer), such as IP address-based forwarding, switching devices have a limited number of rules for forwarding PDUs. In some exemplary embodiments, such limited number of rules may be on the order of 128k or 256k per device in recent generations. As an example, a switch may obtain a destination address directly from the header information in a PDU (and in some cases some additional information), and using this information, the switch returns a port number into which the PDU is forwarded. In the context of Software Defined Networking (SDN), switches that use rule-based forwarding, such limitations on the number of rules—particularly, but not necessarily in the association with coarse forwarding instructions—may be overly limiting.
The terms data plane and forwarding plane relate to the communications architectures that relate to forwarding-plane hardware that provide very high speed PDU forwarding decisions, often in network switching contexts. In general, the memory architectures that embody the high-speed forwarding decision-making include content-addressable memory (CAM) and/or ternary content addressable memory (TCAM). A forwarding plane may refer to aspects of any multilayer switch that forwards frames, packets, and possibly other PDU at high speed (possibly on application specific hardware or chipsets). In some cases, specific L2 and L3 components, such as routing tables or Access Control Lists (ACLs), are cached directly into hardware. Routing, switching, ACL and Quality of Service (QoS) tables are stored in a high-speed table memory so that forwarding decisions and restrictions can be made in high-speed hardware. Switches perform lookups in these tables for result information, such as to determine whether a packet with a specific destination IP address is supposed to be dropped according to an ACL, or whether to direct such PDU to a specific port or other destination associated with the IP address (for a PDU that is a packet).
Many commercial switches deploy these memory tables using specialized CAM and TCAM memory architectures. The CAM tables provide a binary decision-making scheme (i.e. based on true/false or 1/0). TCAM, by contrast allows three states: 1, 0 and “don't care”, e.g. wild card. TCAM, therefore, provides for more complex rules. TCAM, as with certain other types of memory tables, may also permit the use of forwarding rules across layers (so not just one of L2 or L3, or indeed just those layers). TCAM, however, is very power hungry and expensive, and the tables are much smaller. TCAM may only have ˜1500 entries. As such, a conflict arises between a requirement for high-throughput and/or low latency computing functions and a system with either or both of a high number of clients and/or a high number of distributed hosts, particularly when the clients and hosts are interfaced by a single or low number of switching devices, and the hosts are intended to be scalable.
Current solutions such as Link Aggregation Group (LAG) and Multi-Chassis Link Aggregation Group (MLAG) for increasing bandwidth of network devices utilize forwarding rules so that a plurality of ports on a given device, or a plurality of devices, can appear to an originating device or a destination device as a single device. Such solutions operate in a context of stateless communication, so may not be appropriate for some communications protocols. Equal Cost Multi-Path (ECMP) routing also provides an alternative solution by providing for alternative routes to a given destination as network nodes become saturated. In either case, however, forwarding continues to be achieved in a deterministic manner—for either the data path as a whole or the destination. In general, hashing based on a packet-related characteristic, usually the originating or destination MAC address, is a common methodology for implementing forwarding rules. As such, the rules-based limitation is not overcome as the number of clients and the number of destinations increases—the path, or the rule associated with forwarding the packet, is based on the origin or destination MAC address, which will increase beyond the ability for the limited rules to handle. Hashing normalizes the distribution of client-host interaction, as well as other benefits, but does not scale the number of associations for a deterministic communication path.
Accordingly, there is a need for addressing some of the shortcomings identified above, as well as other issues relating to rules-based forwarding. This background information is provided to reveal information believed by the applicant to be of possible relevance. No admission is necessarily intended, nor should be construed, that any of the preceding information constitutes prior art or forms part of the general common knowledge in the relevant art.